剛好工作有個原始碼品質掃描工作,就記錄以下也分享出來,勉強跟網路有關XD:
範例目標:啟動sonarqube並用maven進行scan
這部份先注意一下,要先做功課,因為最新版的sonarqube不再支援java 8,所以我們要上sonarqube檢視支援。
剛這個部份我就卡關很久...
https://docs.sonarsource.com/sonarqube/8.9/requirements/prerequisites-and-overview/
可以看到有支援8,所以我們就鎖定這個版本。
另外為了讓maven可以連線得到sonarqube,我們先建立一個customed network:ap_net
docker network create ap_net
docker run -d -p 9000:9000 --network=ap_net sonarqube:8.9.10-community
預設帳號密碼為admin,登入後跟著畫面取得token與連線資訊
docker inspect container_id
檢視sonarqube的ip。
version: "3"
name: project
services:
maven:
image: maven:3.9.4-eclipse-temurin-8-alpine
volumes:
- "/xx:xx"
- "/m2:/root/.m2"
working_dir: /usr/src/mymaven
command: mvn sonar:sonar -Dsonar.projectKey=xxxx -Dsonar.host.url=http://172.18.0.2:9000 -Dsonar.login=80961bb0a701ecb4d5926238101e01bfe9bb6a32 clean package
networks:
- ap_net
networks:
ap_net:
external: true
docker-compose -f docker-compose.yaml up
version: "3"
name: project
services:
sonarqube:
image: sonarqube:8.9.10-community
ports:
- 9000:9000
networks:
- ap_net
maven:
image: maven:3.9.4-eclipse-temurin-8-alpine
volumes:
- "/source:/usr/src/mymaven"
- "/m2:/root/.m2"
working_dir: /usr/src/mymaven
command: mvn sonar:sonar -Dsonar.projectKey=xxxx -Dsonar.host.url=http://sonarqube:9000 -Dsonar.login=80961bb0a701ecb4d5926238101e01bfe9bb6a32 clean package
networks:
- ap_net
networks:
ap_net:
external: true
後續可以改善方向: